/**************************************************************************************
*
*	Copyright (C) 2009 Brent Andrew Chua - See LICENSE.txt for more info.
*		
*	Filename	-	Exception.h
*
*	Description -	Exception class for program error handling.
*
*	Comments	-	
*
*	Modification History:
*			Name			   Date					Description
*			CodeSushi	-	11/15/2009		-	File creation
**************************************************************************************/

#ifndef _PSX_EXCEPTION_EH_H_
#define _PSX_EXCEPTION_EH_H_

#include "Platform.h"

namespace Pulse
{

	class Exception
	{
	public:
		Exception( const char *pMsg, Pulse::SIZE_T lineNum = PSX_LINE, const char *pFileName = PSX_FILE)
			: m_pMessage( pMsg ), m_lineNumber( lineNum ), m_pFileName( pFileName )
		{
		}

		const CHAR *GetMessage( void ) const
		{ return m_pMessage; }

		SIZE_T GetLineNumber( void ) const
		{ return m_lineNumber; }

		const CHAR *GetFileName( void ) const
		{ return m_pFileName; }

	protected:
		const CHAR		*m_pMessage;
		SIZE_T	m_lineNumber;
		const CHAR 		*m_pFileName;
	};


}

#endif /* _PSX_EXCEPTION_EH_H_ */